fix: mutable query detection #1511
                
     Merged
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Fixes a bug that incorrectly raised an exception when executing select statements when allow_write is false.
Summary
Changes
• Enhanced SQL mutation detection: Added new mutable_sql_detector.py utility with comprehensive keyword detection for SQL operations that modify data
• Improved write access control: Replaced simple string matching with robust pattern matching to detect mutating SQL operations (INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, etc.)
• Better error handling: More specific error messages when mutating operations are attempted without write access
• Code reorganization: Moved query execution logic earlier in the flow for better validation sequencing
User experience
User will no longer experience a fatal bug when executing
selectstatements withallow_writeset tofalse.Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change? N
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.